perm filename NEWBOO[AM,DBL] blob
sn#462855 filedate 1979-07-26 generic text, type T, neo UTF8
(FILECREATED "21-Aug-78 06:03:55" <MOLGEN>NEWBOOT.;3 2475
previous date: "21-Aug-78 05:50:09" <MOLGEN>NEWBOOT.;2)
(PRETTYCOMPRINT NEWBOOTCOMS)
(RPAQQ NEWBOOTCOMS ((FNS * NEWBOOTFNS)))
(RPAQQ NEWBOOTFNS (EDITEXPR EDITMACRO GET-LIST PUT-LIST TVMACRO))
(DEFINEQ
(EDITEXPR
[LAMBDA (VALUE RESTRICTION SLOT UNIT)
(CLISP: FAST)
(PROG (COM DONEFLG TEMP)
(WRITE "EXPR Editor")
(do (NLSETQ (PROGN COM←(INTTY "ee: " '("DE" "PR" "ED" "DO" "OK"))
(SELECTQ COM
(ED (if VALUE=NIL
then VALUE←(COPY <'AND >))
(EDITV VALUE)
(CLEARBUF))
(DE (if VALUE
then TEMP←(INTTY "Clause # " NIL
"Type the number of the clause you want to delete.")
(if (AND (NUMBERP TEMP)
(TEMP LT (FLENGTH VALUE)+ -1))
then TEMP←TEMP+1
VALUE←(for CLAUSE in VALUE as I from 2 to 100
unless (EQP I TEMP) collect CLAUSE)
else (WRITE "Expecting a number between 1 and " (FLENGTH VALUE)+ -1))
else (WRITE "Nothing to delete")))
(PR (WRITE VALUE))
((DO OK)
DONEFLG←T)
NIL)))
until DONEFLG)
(RETURN VALUE])
(EDITMACRO
[LAMBDA (VALUE RESTRICTION SLOT UNIT)
(CLISP: FAST)
(* EDITOR for MACRO datatype.)
(PROG NIL
(WRITE "MACRO editor")
(if VALUE=NIL
then (if 'Y =(INTTY "Do you want to enter a MACRO now? " '("Y" "N")
"Type Y to enter the macro.
Type N to set no value. (Macro to be set at lower level.)")
then VALUE←(COPY <'INITIAL-MACRO >)
else (RETURN NIL))
else VALUE←(COPY VALUE))
(EDITV VALUE)
(CLEARBUF)
(RETURN VALUE])
(GET-LIST
[LAMBDA (SLOT UNIT)
(CLISP: FAST)
(* GET-LIST returns a LISP-list from the SLOT of UNIT. It performs no checking and does not copy the list.)
(GETVALUE SLOT UNIT)::2])
(PUT-LIST
[LAMBDA (SLOT UNIT NEWLIST)
(CLISP: FAST)
(* PUT-LIST replaces the value of the list in SLOT of UNIT with the new list given in VAL.
It performs no checking.)
(PROG (OLDVAL)
(OLDVAL←(HCOPYALL (GETVALUE SLOT UNIT)))
(OLDVAL::2←NEWLIST)
(PUTFIELD OLDVAL 'VALUE SLOT UNIT])
(TVMACRO
[LAMBDA (VALUE RESTRICTION SLOT UNIT)
(CLISP: FAST)
(if VALUE
then T])
)
(DECLARE: DONTCOPY
(FILEMAP (NIL (273 2451 (EDITEXPR 285 . 1242) (EDITMACRO 1246 . 1788) (GET-LIST 1792 . 1999) (PUT-LIST 2003 . 2350) (TVMACRO
2354 . 2448)))))
STOP